Faceted Information Flow and Bi-Monadic Interpreters
نویسندگان
چکیده
When an application fails to ensure information flow security, it may leak sensitive data such as passwords, credit card numbers, or medical records. News stories of such failures abound. Austin and Flanagan [2012] introduce faceted values – values that present different behavior according to the privileges of the observer – as a dynamic approach to enforcing information flow policies for an untyped, imperative λ-calculus. We implement faceted values as a Haskell library, elucidating their relationship to types and monadic imperative programming. In contrast to previous work, our approach does not require modification to the language runtime. In addition to pure faceted values, our library supports faceted mutable reference cells and secure facet-aware socket-like communication. To illustrate a non-trivial use of the library, we present an interpreter for a small language whose information flow security is guaranteed by our library. This interpreter uses a monad in the traditional way for encapsulating effects, but it also uniquely uses a second monad to structure its values.
منابع مشابه
Faceted Dynamic Information Flow via Control and Data Monads
An application that fails to ensure information flow security may leak sensitive data such as passwords, credit card numbers, or medical records. News stories of such failures abound. Austin and Flanagan[2] introduce faceted values – values that present different behavior according to the privilege of the observer – as a dynamic approach to enforce information flow policies for an untyped, impe...
متن کاملTyped Faceted Values for Secure Information Flow in Haskell
When an application fails to ensure information flow security, it may leak sensitive data such as passwords, credit card numbers, or medical records. News stories of such failures abound. Austin and Flanagan [2012] introduce faceted values – values that present different behavior according to the privileges of the observer – as a dynamic approach to enforcing information flow policies for an un...
متن کاملAn Implementation of Modular Monadic Semantics using Folds and Monadic Folds*
Modular monadic semantics can be implemented using folds or catamorphisms over a functor that expresses the abstract syntax of the language. By composing several functors, it is possible to obtain modular interpreters from reusable components. Monadic folds structure programs that process recursively their input and control the side effects of the output they produce. We consider that the seman...
متن کاملCompiling Monads ∗
Computational monads offer a powerful way to parameterize functional specifications, but they give rise to exceedingly tedious simplifications to instantiate this “monadic” interpreter. We report on the use of partial evaluation to achieve the following instantiations automatically. • We derive equivalent formulations of the monadic λ-interpreter, based on equivalent specifications of monads fr...
متن کاملInfinite and Bi-infinite Words with Decidable Monadic Theories
We study word structures of the form (D,<,P ) where D is either N or Z, < is the natural linear ordering on D and P ⊆ D is a predicate on D. In particular we show: (a) The set of recursive ω-words with decidable monadic second order theories is Σ3complete. (b) Known characterisations of the ω-words with decidable monadic second order theories are transfered to the corresponding question for bi-...
متن کامل